﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Threading;
using Newtonsoft.Json;
using ConsoleApp_core;
using System.Threading.Tasks;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            //泛型
            //new GeneryT().Show();
            //new GeneryT().Show2();
            //new GeneryT().Show3();

            //反射
            //new ReflectionDemo().Show();
            //new ReflectionDemo().GetDBModol();
            //new ReflectionGetLinq().Test();
            //new Or().Show();
            //new ReflectionCreateInstance().Show();

            //集合
            //new Lists().Show();
            //new Enumerables().Show();
            //new Collections().Show();
            //new LazyClass().Show();
            //new IQueryAbleClass().Show();

            //new CloneExtension().Show();
            //new Or().Show();

            //多线程
            //new Security().Show();
            //new TaskShow().Show();
            new TaskShow().Show2();

            //拦截器
            //new OrderInterceptBusinessService().Show();

            //委托
            //new DelegateClass().Show();
            //new ActionFunc().Show();
            //new LinqActionFunc().Show();
            //new EventTest().Show();

            //异步委托
            //SyncTest.Show();
            //AsyncTest.Show();

            //JIT优化-调试
            //new DebugAndRelease().Show();
            //new DebugAndRelease().Show2();

            //索引器
            //new IndexerTest().Show();
            //new IndexerTest2().Show();

            //异常
            //new ExceptionTry().Show();
            //new ExceptionType().Show();
            //new ExceptionSomeWrongUse().Show();

            //引用类型
            //new ReferenClass().Show();
            //new IsAssignable().Show();
            //new IsAssignable().Show2();
            //new IsAssignable().Show3();

            //事务与锁
            //new LockShow().Show();
            //new LockShow().Show2();
            //new LockShow().Show3();



            Console.Read();

        }
    }

}
